/*
Copyright 2010-2011 CumulusCloud
http://cumuluscloud.cc

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package cumulusCloud.common;

import cumulusCloud.common.objects.CloudConfiguration;
import cumulusCloud.knowledge.ConfigurationKnow;

/**
 * This class gives information and can modify the cloud configuration
 * 
 * @author Simon Levesque
 *
 */
public class ManageConfiguration {
	private static ConfigurationKnow know = ConfigurationKnow.getInstance();
	
	/**
	 * Get the configuration that is currently in use (might not be up to date)
	 * 
	 * @return The configuration
	 */
	public static CloudConfiguration getCurrentConfig() {
		return know.getCurrentConfig();
	}
	
	/**
	 * Get the configuration that is currently set. This is the most recent version, but might be used only after a reboot.
	 * 
	 * @return The configuration
	 */
	public static CloudConfiguration getPendingConfig() {
		return know.getPendingConfig();
	}
	
	/**
	 * To change any part of the configuration. Some changes might need a reboot of the webserver
	 * 
	 * @param newConfig The new configuration
	 * @return True if could be saved
	 */
	public static synchronized boolean setNewConfig(CloudConfiguration newConfig) {
		return know.setNewConfig(newConfig);		
	}
}
